using System.Collections.Generic;

namespace ApiContract.Domain
{
    /// <summary>
    /// 礼品卡
    /// </summary>
    public class GiftCard : Versionable<long>
    {
        /// <summary>
        /// 关联到商品Id
        /// </summary>
        public int? PurchasedWithOrderProductVariantId { get; set; }

        /// <summary>
        /// 礼品卡类型
        /// </summary>
        public GiftCardType GiftCardType { get; set; }

        /// <summary>
        /// 礼品卡金额
        /// </summary>
        public decimal Amount { get; set; }

        /// <summary>
        /// 礼品卡是否激活
        /// </summary>
        public bool IsGiftCardActivated { get; set; }

        /// <summary>
        /// 礼品卡卡号
        /// </summary>
        public string GiftCardCouponCode { get; set; }

        /// <summary>
        /// 接收者
        /// </summary>
        public virtual string RecipientName { get; set; }

        /// <summary>
        /// 接收者电子邮箱
        /// </summary>
        public string RecipientEmail { get; set; }

        /// <summary>
        /// 送出者
        /// </summary>
        public string SenderName { get; set; }

        /// <summary>
        /// 送出者电子邮箱
        /// </summary>
        public string SenderEmail { get; set; }

        /// <summary>
        /// 送出者 附属信息
        /// </summary>
        public string Message { get; set; }

        /// <summary>
        /// 是否已通知到接收者
        /// </summary>
        public bool IsRecipientNotified { get; set; }

        /// <summary>
        /// 礼品卡使用历史记录
        /// </summary>
        public virtual IList<GiftCardUsageHistory> GiftCardUsageHistory { get; set; }
    }
}